The present invention relates to the field of Web services in distributed computing, and more particularly to the message oriented integration of Web services.
Web services represent the leading edge of distributed computing and are viewed as the foundation for developing a truly universal model for supporting the rapid development of component based applications over the World Wide Web. Web services are known in the art to include a stack of emerging standards that describe a service oriented, component based application architecture. In particular, Web services are loosely-coupled, reusable software components that semantically encapsulate discrete functionality and are distributed and programmatically accessible over standard Internet protocols. Conceptually, Web services represent a model in which discrete tasks within processes are distributed widely throughout a value net. Many industry experts consider the service oriented Web services initiative to be the next evolutionary phase of the Internet.
Typically, Web services are described by an interface such as the Web services definition language (WSDL), and can be implemented according to the interface, though the implementation details matter little so long as the implementation conforms to the Web services interface. For example, a Web Service can be described externally via a WSDL port type including of one or more operations. The operations include up to one input message, up to one output message, and zero or more fault messages. Once a Web service has been implemented according to a corresponding interface, the implementation can be registered with a Web services registry, such as Universal Description, Discover and Integration (UDDI), as is well known in the art. Upon registration, the Web service can be accessed by a service requestor through the use of any supporting messaging protocol, including for example, the simple object access protocol (SOAP).
Referring to FIG. 1, a traditional Web services server 110 includes a servlet 140 disposed within a Web container 120 as a listener for a Web service request 160A from a Web services client 130 and to provide a response 160B to the Web services client 130. When the request 160A is received in the servlet 140, the message content of the request 160A, along with reflection logic, are used to create the target object of the message, and to select the correct method in an instance of business logic 150 on the object. Parameters to the method on the target object further are created using the encoded form of the message along with the methods of the reflection interface. Thus, the conventional Web services model tightly couples the client interface to the server implementation of the service.
The flow of control, once the message 160A has been delivered to the servlet 140 is as follows:
1. Message delivered to the servlet.
2. Servlet determines the name of the class to service the message.
3. Servlet creates an instance of the class.
4. Servlet determines the name of the method to invoke on the class.
5. Servlet creates the parameters to the method from information in the message.
6. Servlet invokes the method passing the parameters created from the message.
7. Method returns with results or fault.
8. Servlet encodes the results or fault similar to the parameters sent in the message.
9. Servlet responds with the response message.
In the typical circumstance, a Web service can be constructed using a low-level programming language such as the Java™ programming language, the C++ programming language or the Java 2 Enterprise Edition framework. (Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc.) Notwithstanding, the use of a low-level programming language to construct a Web service requires of the developer a degree of proficiency in the underlying programming languages and an awareness of any restrictions imposed by the specific domain mapping rules.
By comparison, a Message Oriented Architecture (MOA) describes a system integration approach where applications can communicate with other applications through the exchange of messages without requiring knowledge of the platform or processor in which each other application resides. Rather, the messages can contain formatted data, requests for action, or both. The modern climate reflects an increasing need to integrate or mediate Web services which use different standards and protocols, and oftentimes demonstrate different operating behaviors. The integration and mediation of Web services can be particularly important in the domain of Enterprise Application Integration (EAI) and Enterprise Data Interchange (EDI), which traditionally use a MOA approach to integrate Web services. Yet, for users who are only familiar with message-based programming, construction of Web services through Java and J2EE requires a significant investment in skills training and domain knowledge transfer.